草庐IT

JavaScript 数组元素到字符串

全部标签

Ruby 将字符串转换为方法名

我的ruby​​文件中定义了两个方法。defis_mandatory(string)putsxyzenddefis_alphabets(string)putsabcend包含方法名称的数组。methods=["is_mandatory","is_alphabets"]当我执行以下操作时methods.eachdo|method|putsmethod.concat("(\"abc\")")end它只是显示is_mandatory("abc")is_alphabets("abc")而不是实际调用该方法。如何将字符串转换为方法名?任何帮助是极大的赞赏。干杯! 最佳

ruby - 在运行时使用字符串作为变量

我有一个字符串,它是在运行时创建的。我想将此字符串用作变量以将一些数据存储到其中。如何将字符串转换为变量名? 最佳答案 如果你能原谅变量名前面的@符号,下面的方法就可以了:variable_name=...#determineuser-givenvariablenameinstance_variable_set("@#{variable_name}",:something)这将创建一个名为@whatever的变量,其值设置为:something。:something显然可以是您想要的任何内容。这似乎在全局范围内有效,通过声明一个自发

ruby - 基于值的哈希数组是唯一的

我觉得这可以改进(在ruby​​中很常见)。我正在尝试根据值对一组哈希值进行uniq。在这个例子中,我想要元素的颜色。苔藓和雪是骗子。#removeuniquearrayofhashesbasedonahashvaluea=[{:color=>"blue",:name=>"water"},{:color=>"red",:name=>"fire"},{:color=>"white",:name=>"wind"},{:color=>"green",:name=>"earth"},{:color=>"green",:name=>"moss"},{:color=>"white",:name=>

ruby-on-rails - 如何对这个哈希数组进行分组?

我有这个哈希数组:-:name:Ben:age:18-:name:David:age:19-:name:Sam:age:18我需要按年龄对它们进行分组,所以它们最终会像这样:18:-:name:Ben:age:18-:name:Sam:age:1819:-:name:David:age:19我试过这样做:array=array.group_by&:age但是我得到这个错误:NoMethodError(undefinedmethod`age'for{:name=>"Ben",:age=>18}:Hash):我做错了什么?我正在使用Rails3.0.1和Ruby1.9.2

Ruby:通过正则表达式过滤数组?

这对我来说是一个常见的、重复的习惯用法:使用正则表达式过滤一个数组,并返回一个子数组。我的方法看起来不太像Ruby(我来自Java)。我最终得到了很多看起来很像这样的方法。改进此代码的惯用Ruby方法是什么?defget_all_gifs(items_)output=Array.newfilter=/\.jpg$/items_.eachdo|item|nextifitem=~filteroutput 最佳答案 如果你想找到所有的动图:defget_all_gifs(files)files.select{|i|i[/\.gif$/]}

ruby - 按可能为 nil 的属性对对象的 ruby​​ 数组进行排序

我有一个对象数组,我需要按可以是整数或nil的位置属性对其进行排序,并且我需要具有nil位置的对象位于数组的末尾。现在,我可以强制位置返回一些值而不是nil,这样array.sort就不会失败,但是如果我使用0作为默认值,那么它会将这些对象放在排序的前面。做这种事情的最好方法是什么?我是否应该将nil值设置为一些“几乎”总是保证在末尾的高得离谱的数字?还是有其他方法可以使array.sort方法将nil属性对象放在数组的末尾?代码如下所示:classParentdefsorted_childrenchildren.sort{|a,b|a.positionb.position}enden

ruby - 在 Ruby 中获取 block 返回 true 的第一个可枚举元素的最快方法是什么?

在Ruby中获取block返回true的第一个可枚举元素的最快方法是什么?例如:arr=[12,88,107,500]arr.select{|num|num>100}.first#=>107我不想像select那样遍历整个数组,因为我只需要第一个匹配项。我知道我可以做一个each并在成功时中断,但我认为有一个本地方法可以做到这一点;我只是没有在文档中找到它。 最佳答案 几个核心ruby​​类,包括Array和Hash包括Enumerable模块提供了许多有用的方法来处理这些枚举。此模块提供findordetectmethods这正是

arrays - 更改 .each 循环中引用的数组元素的值?

如何实现以下操作:我想更改在.each循环中的管道字符之间引用的数组元素的值。这是我想做的,但目前没有工作的例子:x=%w(hellothereworld)x.each{|element|if(element=="hello"){element="hi"#change"hello"to"hi"}}putsx#output:[hithereworld]很难找到如此笼统的东西。 最佳答案 您可以使用collect!或map!就地修改数组来获得您想要的结果:x=%w(hellothereworld)x.collect!{|element|

ruby - 如何在 Ruby 中返回两个字符串之间的字符串的子字符串?

如何在Ruby中返回字符串的两个字符串标记之间的字符串?例如我有:输入字符串str1_markerstringstr2_markerstring想要做这样的事情:input_string.string_between_markers(str1_markerstring,str2_markerString)示例文本:s#=>"Chargesfortheperiod2012-01-2800:00:00to2012-02-2723:59:59:\nAnyNetworkCapremaining:$366.550InternationalCapremaining:$0.000"str1_mark

ruby - 在 Ruby 中反转字符串

如何在Ruby中反转字符串?我知道string#reverse。我有兴趣了解如何用纯Ruby编写它,最好是就地解决方案。 最佳答案 已经有一个原地反转方法,叫做“reverse!”:$a="abc"$a.reverse!$putsacba如果您想手动执行此操作,请尝试此操作(但它可能不是多字节安全的,例如UTF-8),并且它会更慢:classStringdefreverse_inplace!half_length=self.length/2half_length.times{|i|self[i],self[-i-1]=self[-i